package hichecker.tools.event.abstract_event;

/**
 * This interface extends normal Events by adding a type.
 * The type should be used to distinguish different sub-events.
 * The interface enforces the method getEventType, which returns the type.
 * @param <T> The possible types of different events. Types are encoded as enums.
 * @author Sebastian Bader
 */
public interface TypedEvent<T extends Enum<T>> extends Event {

	/**
	 * @return the type of this event
	 */
	public T getEventType();
	
	/**
	 * sets the type of this event
	 */
	public void setEventType(T type);
}
